var $ = require('jquery');
var util = require('../../../utils');
var html = require('./index.html');
var $msgTmp = $(html);

/**
 * 生成消息返回jquery对象
 * @param {Boolean} isSelf
 * @param {Object} msg
 * @param {String} msg.type 消息类型 image|text
 * @param {String} msg.content 消息内容
 * @param {String} msg.nickname 昵称
 * @param {String} msg.fromSuid 短Id
 * @returns {*}
 */
module.exports.create = function (isSelf, msg) {
  // 如果该消息存在，不处理
  if (msg.msgId) {
    if ($('#msg-' + msg.msgId).length) {
      return null;
    }
  }
  var $msg = $msgTmp.clone();
  if (msg.msgId) {
    $msg.attr('id', 'msg-' + msg.msgId);
  }
  var timestr = util.formatTime(msg.time, 'yyyy-MM-dd HH:mm:ss');
  if (!isSelf) {
    $msg.addClass('im-service');
    $msg.find('.message-owner').text(msg.nickname || msg.fromSuid);
    $msg.find('.lm').html('<span></span>');
    $msg.find('.im-user-pic')
      .html('<img alt="" src="/webim/img/service/service1.png"><img class="im-user-pic-cap" alt="" src="/WebIM/img/cap.png">');
  } else {
    $msg.find('.message-owner').text(Meta.username);
    $msg.find('.rm').html('<span></span>');
    $msg.addClass('im-me');
    $msg.find('.im-user-pic')
      .html('<img alt="" src="/webim/img/user/user1.png"><img class="im-user-pic-cap" alt="" src="/WebIM/img/cap.png">');
  }
  $msg.find('.send-time').text(timestr);

  if (msg.type == 'image') {
    var $img = null;
    if (msg.img) {
      $img = $(msg.img);
    } else {
      $img = $('<img>');
      $img.attr('src', msg.content);
    }

    if (!$img.attr('id')) {
      $img.attr('id', msg.msgId || util.createRandomId());
    }

    $img.css({
      'max-width': '120px',
      'height': 'auto',
      'width': 'auto'
    });

    $msg.find('.message-content').append($img);
    if ($img.attr('data-error')) {
      $img.attr('src', '#');
    }
    else if (!$img.attr('data-uploaded') && !/^http:|^https:/.test($img.attr('src'))) {
      $msg.find('.message-content').append('<div class="loading">');
    }
  } else if (msg.type == 'text') {
    var text = $.trim(msg.content);
    console.log('消息text', text);
    var p = document.createElement('p');
    //innerText保证不会按html标签解释
    p.innerText = text;
    $msg.find('.message-content').append(p);
  } else {
    return false;
  }
  return $msg;
};
